#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
int cnt=0;
ll dep=1,st[11],ans[11],flag;
ll gcd(ll x ,ll y){
    if(y==0)return x;
    return gcd(y,x%y);
}
void dfs(ll a,ll b,ll x){
    if(x>dep)return;
    if(a==1&&b>st[x-1]){
        st[x]=b;
        if(!flag||st[x]<ans[x]){
            for(int i=1;i<=dep;i++){
                ans[i]=st[i];
            }
        }
           flag=1;
         return;
   
    }
    ll l=max(b/a,st[x-1]+1);
    ll r=(dep-x+1)*b/a;
    if(flag&&r>=ans[dep])r=ans[dep]-1;
    for(ll i=l;i<r;i++){
        st[x]=i;
        ll gc=gcd(a*i-b,b*i);
        dfs((a*i-b)/gc,b*i/gc,x+1);
    }
}
int main(){
    int a,b;
    cin>>a>>b;
    ll c=gcd(a,b);
    a/=c;
    b/=c;
    st[0]=1;
    for(dep=1;dep<=10;dep++){
        dfs(a,b,1);
        if(flag){
            for(int i=1;i<=dep;i++){
                printf("%lld ",ans[i]); 
            }
              break;
        }
    }
    return 0;
}